package br.com.futebol;

import java.util.LinkedList;
import java.util.List;
import java.util.Random;

import br.com.futebol.vo.Jogador;

public class Sortear {
	public Boolean validar(){
		
		return Boolean.FALSE;
	}
	
	
	public List<Jogador> separarJogadores(StringBuilder jogadores, int qtdJogadores) {
		String[] listaInicial = jogadores.toString().split(";");
		
		int tamanhoLista = listaInicial.length;
		
		List<Jogador> listaRetorno = new LinkedList<Jogador>();
		
		for (int i=0; i < tamanhoLista; i++) {
			//listaRetorno.add(new Jogador(listaInicial[i]));
		}
		
		return listaRetorno;
	}
	
	public List<List<Jogador>> dividirTimes(List<Jogador> listaJogadores, int qtdJogadores) {
		int tamanhoLista = listaJogadores.size();
		Double conta = (double) (tamanhoLista / qtdJogadores);
		
		int qntTimes = conta.intValue();
		
		List<List<Jogador>> retorno = new LinkedList<List<Jogador>>();
			
		Jogador jogadorSorteado = null;
		Random random = new Random();
		int numeroSorteado = 0;
		
		for (int i=0; i < qntTimes; i++) {
			//Adicionando um time
			retorno.add(new LinkedList<Jogador>());
			for (int j=0; qtdJogadores < j; j++) {
				//TODO fazer tratamento pra menos jogadores
				//Caso nao esteja vazio adiciona os jogadores
				if (!listaJogadores.isEmpty()) {
					//Obtendo um numero randomico no intervalo de 0 ao tamanho da lista
					numeroSorteado = random.nextInt(listaJogadores.size());
	
					//Obtendo jogando sorteado
					jogadorSorteado = listaJogadores.remove(numeroSorteado);
	
					//Adicionando um jogando ao time
					retorno.get(i).add(jogadorSorteado);
				}
			}
		}
		
		return retorno;
	}
	
	
}
